"""
    目标：
        显式等待使用
    操作：
        1.导包 WebDriverWait()类
        2.实例化WebDriverWait()类并调用until(method)方法
        method：匿名函数
        lambda x:x.find_element()
    方法说明：
        WebDriverWait(driver, timeout, poll_frequency=0.5)
            driver:浏览器驱动对象
            timeout:超时的时长，单位：秒
            poll_frequency:检测间隔时间，默认0.5秒
    需求：
        定位用户名输入admin
"""
# 导包
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

# 获取浏览器驱动对象
driver = webdriver.Chrome()

# 打开url
url = r"D:\python\python-selenium-learn\a03_元素和浏览器的操作方法\learn-files\注册A.html"
driver.get(url)

# 实例化WebDriverWait()并调用until方法
# 注意：调用until方法返回的一定是一个元素
username = WebDriverWait(driver, timeout=10, poll_frequency=0.5).until(lambda x: x.find_element(By.ID, "#user"))
# 注意：此时username还不是元素，只有代码运行起来才是元素
username.send_keys("admin")

# 暂停3秒
sleep(3)

# 关闭驱动对象
driver.quit()

